package com.kakarote.ids.provider.service;

import com.kakarote.common.entity.UserInfo;
import com.kakarote.common.result.BasePage;
import com.kakarote.common.result.Result;
import com.kakarote.ids.provider.common.FeignConfig;
import com.kakarote.ids.provider.entity.BO.UserQueryBO;
import com.kakarote.ids.provider.entity.VO.OrganizationVO;
import com.kakarote.ids.provider.entity.VO.UserVO;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

@FeignClient(name = "user", url = "https://id.72crm.com", configuration = {FeignConfig.class})
public interface UserService {
  @PostMapping({"/idsUser/queryChildUserId"})
  Result<List<Long>> queryChildUserId(@RequestParam("userId") Long paramLong);
  
  @PostMapping({"/idsUser/queryPageList"})
  Result<BasePage<UserVO>> queryUserList(@RequestBody UserQueryBO paramUserQueryBO);
  
  @PostMapping({"/idsUser/queryUserList"})
  Result<List<Long>> queryUserList(@RequestParam("type") Integer paramInteger);
  
  @PostMapping({"/idsUser/queryUserInfoList"})
  Result<List<UserInfo>> queryUserInfoList();
  
  @PostMapping({"/idsUser/queryNormalUserByIds"})
  Result<List<Long>> queryNormalUserByIds(@RequestBody Collection<Long> paramCollection);
  
  @PostMapping({"/idsUser/queryUserInfoByUserId"})
  Result<UserInfo> queryUserInfoByUserId(@RequestParam("userId") Long paramLong);
  
  @PostMapping({"/idsUser/queryUserByDeptIds"})
  Result<List<Long>> queryUserByDeptIds(@RequestBody Collection<Long> paramCollection);
  
  @PostMapping({"/idsUser/queryUserIdByRoleId"})
  Result<List<Long>> queryUserIdByRoleId(@RequestParam("roleId") Long paramLong);
  
  @PostMapping({"/idsUser/querySuperUserId"})
  Result<Long> querySuperUserId();
  
  @PostMapping({"/idsRole/listByRoleId"})
  Result<List<Map<String, Object>>> listByRoleId(@RequestBody List<Long> paramList);
  
  @PostMapping({"/idsUser/queryLoginUser"})
  Result<UserVO> queryLoginUser();
  
  @PostMapping({"/idsUser/queryOrganizationInfo"})
  Result<OrganizationVO> queryOrganizationInfo();
  
  @PostMapping({"/idsUser/queryUserIdByMobile"})
  Result<Long> queryUserIdByMobile(@RequestParam("mobile") String paramString);
}
